BUU_[ACTF2020 新生赛]BackupFile 1
扫描目录后发现代码备份index.php.bak
下载后查看
<?php
include_once "flag.php";
if(isset($_GET['key'])) {
$key = $_GET['key'];
if(!is_numeric($key)) {
exit("Just num!");
}
$key = intval($key);
$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
if($key == $str) {
echo $flag;
}
}
else {
echo "Try to find out source file!";
}
也就是通过url接收变量key值
要使 PHP 代码中的 $key
等于字符串 $str
,首先要理解 PHP 中的类型转换。PHP 是一种弱类型语言,它会在需要时进行类型转换。在比较字符串和整数时,PHP 会尝试将字符串转换为数字,然后再进行比较。
对于字符串 $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
,PHP 会从字符串的开头解析尽可能多的数字部分,直到遇到第一个非数字字符为止。因此,在这种情况下,PHP 会将 $str
转换为 123
(字符串开头的数字部分),然后再与 $key
进行比较。
因此,为了使 $key == $str
成立,$key
的值应为 123
。
得到flag